/*
 * @Description: Test03Base
 * @Author: 平常心
 * @Date: 2024-09-19 14:52:09
 * @LastEditors: 平常心
 * @LastEditTime: 2024-09-19 15:14:45
 */
/**
 * Test03Base
 */
public class Test03Base {
  public static void main(String[] args) {
    // 向上转型 子类对象指向父类引用
    Base base = new Derived();
    // 访问成员变量
    // 运行看做左边 父类中的n = 1
    System.out.println("base.n:" + base.n); // 1
    // 编译看左边 左边父类中没有v编译报错
    // System.out.println("base.v:" + base.v);
    // 成员方法 运行看右边 调用子类中的方法
    base.show();
    // 编译看左边 父类中没有 编译报错
    // base.disp();

    // 向下转型
    Derived d = (Derived) base;
    // 访问成员变量
    System.out.println("d.n:" + d.n); //
    System.out.println("d.v:" + d.v); //
    d.show();
    d.disp();

    Base base1 = new Fork();
    // 向下转型
    Fork f = (Fork) base1;
    // 调用子类独有的方法
    f.out();

  }
}